using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using CrystalDecisions.CrystalReports;
using System.Data.SqlClient;

public partial class ReportePedidoCotizacion : System.Web.UI.Page
{
    ReportDocument reportDoc = new ReportDocument();
    protected void Page_Load(object sender, EventArgs e)
    {
        mostrarReporte();

    }
    protected void mostrarReporte()
    {
        String cadena = (String)ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        SqlConnection conexion = new SqlConnection(cadena);
        string consulta = "";
        string concatena = "";
        SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
        int num = 0;

        if (tb_marcaBuscar.Text != string.Empty)
        {
            if (num == 0)
            {
                consulta = "SELECT Pedido_Cotizaciones.cod_pedido_cotizacion, Pedido_Cotizaciones.fecha, Detalles_Pedidos_Cotizaciones.nro_renglon, Detalles_Pedidos_Cotizaciones.cantidad, Proveedores.nro_documento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Personas.nombres, Personas.apellidos FROM Pedido_Cotizaciones JOIN Detalles_Pedidos_Cotizaciones ON Pedido_Cotizaciones.cod_pedido_cotizacion = Detalles_Pedidos_Cotizaciones.cod_pedido_cotizacion  JOIN  Proveedores ON Pedido_Cotizaciones.cod_proveedor = Proveedores.cod_proveedor  JOIN Productos ON Detalles_Pedidos_Cotizaciones.cod_producto = Productos.cod_producto  JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca  JOIN Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo  JOIN Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                           "WHERE Marcas.descripcion like '" + tb_marcaBuscar.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                num++;
            }
            else
            {
                concatena = " AND Marcas.descripcion like '" + tb_marcaBuscar.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                num++;
            }
        }
        if (tb_productoBuscar.Text != string.Empty)
        {
            if (num == 0)
            {
                consulta = "SELECT Pedido_Cotizaciones.cod_pedido_cotizacion, Pedido_Cotizaciones.fecha, Detalles_Pedidos_Cotizaciones.nro_renglon, Detalles_Pedidos_Cotizaciones.cantidad, Proveedores.nro_documento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Personas.nombres, Personas.apellidos FROM Pedido_Cotizaciones JOIN Detalles_Pedidos_Cotizaciones ON Pedido_Cotizaciones.cod_pedido_cotizacion = Detalles_Pedidos_Cotizaciones.cod_pedido_cotizacion  JOIN  Proveedores ON Pedido_Cotizaciones.cod_proveedor = Proveedores.cod_proveedor  JOIN Productos ON Detalles_Pedidos_Cotizaciones.cod_producto = Productos.cod_producto  JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca  JOIN Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo  JOIN Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                           "WHERE Productos.nombre like '" + tb_productoBuscar.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                num++;
            }
            else
            {
                concatena = " AND Productos.nombre like '" + tb_productoBuscar.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                num++;
            }
        }
        if (tb_proveedorBuscar.Text != string.Empty)
        {
            if (num == 0)
            {
                consulta = "SELECT Pedido_Cotizaciones.cod_pedido_cotizacion, Pedido_Cotizaciones.fecha, Detalles_Pedidos_Cotizaciones.nro_renglon, Detalles_Pedidos_Cotizaciones.cantidad, Proveedores.nro_documento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Personas.nombres, Personas.apellidos FROM Pedido_Cotizaciones JOIN Detalles_Pedidos_Cotizaciones ON Pedido_Cotizaciones.cod_pedido_cotizacion = Detalles_Pedidos_Cotizaciones.cod_pedido_cotizacion  JOIN  Proveedores ON Pedido_Cotizaciones.cod_proveedor = Proveedores.cod_proveedor  JOIN Productos ON Detalles_Pedidos_Cotizaciones.cod_producto = Productos.cod_producto  JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca  JOIN Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo  JOIN Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                           "WHERE Proveedores.nombre_empresa like '" + tb_proveedorBuscar.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                num++;
            }
            else
            {
                concatena = " AND Proveedores.nombre_empresa like '" + tb_proveedorBuscar.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                num++;
            }
        }
        if (tb_modelo.Text != string.Empty)
        {
            if (num == 0)
            {
                consulta = "SELECT Pedido_Cotizaciones.cod_pedido_cotizacion, Pedido_Cotizaciones.fecha, Detalles_Pedidos_Cotizaciones.nro_renglon, Detalles_Pedidos_Cotizaciones.cantidad, Proveedores.nro_documento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Personas.nombres, Personas.apellidos FROM Pedido_Cotizaciones JOIN Detalles_Pedidos_Cotizaciones ON Pedido_Cotizaciones.cod_pedido_cotizacion = Detalles_Pedidos_Cotizaciones.cod_pedido_cotizacion  JOIN  Proveedores ON Pedido_Cotizaciones.cod_proveedor = Proveedores.cod_proveedor  JOIN Productos ON Detalles_Pedidos_Cotizaciones.cod_producto = Productos.cod_producto  JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca  JOIN Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo  JOIN Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                           "WHERE Modelo_Productos.descripcion like '" + tb_modelo.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                num++;
            }
            else
            {
                concatena = " AND Modelo_Productos.descripcion like '" + tb_modelo.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                num++;
            }
        }
        if (tb_nroPedido.Text != string.Empty)
        {
            if (num == 0)
            {
                consulta = "SELECT Pedido_Cotizaciones.cod_pedido_cotizacion, Pedido_Cotizaciones.fecha, Detalles_Pedidos_Cotizaciones.nro_renglon, Detalles_Pedidos_Cotizaciones.cantidad, Proveedores.nro_documento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Personas.nombres, Personas.apellidos FROM Pedido_Cotizaciones JOIN Detalles_Pedidos_Cotizaciones ON Pedido_Cotizaciones.cod_pedido_cotizacion = Detalles_Pedidos_Cotizaciones.cod_pedido_cotizacion  JOIN  Proveedores ON Pedido_Cotizaciones.cod_proveedor = Proveedores.cod_proveedor  JOIN Productos ON Detalles_Pedidos_Cotizaciones.cod_producto = Productos.cod_producto  JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca  JOIN Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo  JOIN Personas ON Proveedores.nro_documento = Personas.nro_documento " +
                           "WHERE Pedido_Cotizaciones.cod_pedido_cotizacion like '" + tb_nroPedido.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                num++;
            }
            else
            {
                concatena = " AND Pedido_Cotizaciones.cod_pedido_cotizacion like '" + tb_nroPedido.Text + "%'";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                num++;
            }
        }
        if (tb_marcaBuscar.Text.Equals("") && tb_productoBuscar.Text.Equals("") && tb_proveedorBuscar.Text.Equals("") && tb_nroPedido.Text.Equals(""))
        {
            consulta = "SELECT Pedido_Cotizaciones.cod_pedido_cotizacion, Pedido_Cotizaciones.fecha, Detalles_Pedidos_Cotizaciones.nro_renglon, Detalles_Pedidos_Cotizaciones.cantidad, Proveedores.nro_documento, Proveedores.nombre_empresa, Proveedores.direccion_empresa, Proveedores.telefono_empresa, Productos.nombre, Marcas.descripcion AS Marca, Modelo_Productos.descripcion AS Modelo, Personas.nombres, Personas.apellidos FROM Pedido_Cotizaciones JOIN Detalles_Pedidos_Cotizaciones ON Pedido_Cotizaciones.cod_pedido_cotizacion = Detalles_Pedidos_Cotizaciones.cod_pedido_cotizacion  JOIN  Proveedores ON Pedido_Cotizaciones.cod_proveedor = Proveedores.cod_proveedor  JOIN Productos ON Detalles_Pedidos_Cotizaciones.cod_producto = Productos.cod_producto  JOIN  Marcas ON Productos.cod_marca = Marcas.cod_marca  JOIN Modelo_Productos ON Productos.cod_modelo = Modelo_Productos.cod_modelo  JOIN Personas ON Proveedores.nro_documento = Personas.nro_documento ";
            da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
        }
        DataSet DataSet_PedidoCotizacion = new DataSet();
        da.Fill(DataSet_PedidoCotizacion, "PedidoCotizacion");
        reportDoc.Load(Server.MapPath("~/Reportes/ReportePedidoCotizaciones.rpt"));
        reportDoc.SetDataSource(DataSet_PedidoCotizacion.Tables["PedidoCotizacion"]);
        Reporte_Pedidos_Cotizaciones.ReportSource = reportDoc;
        Reporte_Pedidos_Cotizaciones.RefreshReport();
    }
    
    protected void ib_cancelar_Click(object sender, ImageClickEventArgs e)
    {
        tb_marcaBuscar.Text = string.Empty;
        tb_productoBuscar.Text = string.Empty;
        tb_proveedorBuscar.Text = string.Empty;
        tb_nroPedido.Text = string.Empty;
        tb_modelo.Text = string.Empty;

        mostrarReporte();        
    }

    protected void ib_reporte_Click(object sender, ImageClickEventArgs e)
    {

        mostrarReporte();
    }
}
